package Controlador;

import Modelo.DiasFeriados;
import Modelo.Listas;
import Modelo.Validaciones;
import Vista.JFrameDiasFeriados;
import Vista.Mensajes;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ControladorDiasFeriados implements ActionListener {

    private JFrameDiasFeriados formFeridos;
    private Listas listFeria;

    public ControladorDiasFeriados(Listas lisFer) {
        listFeria = lisFer;
        formFeridos = new JFrameDiasFeriados();
        formFeridos.agregarListener(this);
        formFeridos.setVisible(true);
    }

    private void cargarFeriados() {
        int fila;
        DiasFeriados feriados = new DiasFeriados();

        for (fila = 0; fila < listFeria.getListaFeriados().size(); fila++) {
            feriados = listFeria.getListaFeriados().get(fila);
            DateFormat df = DateFormat.getDateInstance();
            String f =  df.format(feriados.getFecha());
            formFeridos.getjTableFeriados().setValueAt(f, fila, 0);
        }
    }

    private void grabar() {
        DiasFeriados feriados = new DiasFeriados();
        feriados.DiasFeriados(formFeridos.getDateFecha().getDate());
        listFeria.getListaFeriados().add(feriados);
        for (int i = 0; i < listFeria.getListaFeriados().size(); i++) {
            feriados = listFeria.getListaFeriados().get(i);
            DateFormat df = DateFormat.getDateInstance();
            String f =  df.format(feriados.getFecha());
            formFeridos.getjTableFeriados().setValueAt(f, i, 0);
        }
        formFeridos.getDateFecha().requestFocusInWindow();
        Mensajes.Aviso("El Dia fue Guardado", "");
    }

    private void limpiar() {
        formFeridos.getDateFecha().setDate(null);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(formFeridos.getBtnBuscarDF())) {
            cargarFeriados();
        }
        if (e.getSource().equals(formFeridos.getBtnGuardarDF())) {
            grabar();
            limpiar();
            
        }
        if (e.getSource().equals(formFeridos.getBtnSalirDF())) {
            formFeridos.dispose();
        }
        if (e.getSource().equals(formFeridos.getBtnCancelarDF())) {
            limpiar();
        }
    }
}
